/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import model.dominio.Motorista;

/**
 *
 * @author Leandro
 */
public class DaoMotorista extends DaoPessoa {

    public DaoMotorista() {
        super();
    }

    /**
     * 
     * @author Leandro
     * @param motorista Instância com CPF e/ou nome para busca.
     * @return motorista com o CPF indicado, lista de motoristas com nomes parecidos 
     * ou null caso contrário.
     */
    public List<Motorista> buscarMotorista(Motorista motorista) {
        EntityManager em = super.getEntityManager();

        try {
            String strSQL = "SELECT m FROM Motorista m ";
            if (motorista.getCpf() != null) {
                strSQL += "WHERE m.cpf='" + motorista.getCpf() + "' ";
            } else if (motorista.getNome() != null) {
                strSQL += "WHERE m.nome LIKE '" + motorista.getNome() + "%' ";
            }
            strSQL += "ORDER BY NOME ASC";
            em.getTransaction().begin();

            Query query = em.createQuery(strSQL);

            return (List<Motorista>) query.getResultList();
        } catch (PersistenceException e) {
            return null;
        } finally {
            em.close();
        }
    }
}
